package api

type OperatorBeneficiariesReq struct {
	BeneficiaryId                  string   `json:"beneficiary_id"`
	Name                           string   `json:"name"`
	BankAccountHolderName          string   `json:"bank_account_holder_name"`
	BankCountry                    string   `json:"bank_country"`
	Currency                       string   `json:"currency"`
	Email                          string   `json:"email"`
	BeneficiaryAddress             string   `json:"beneficiary_address"`
	BeneficiaryCountry             string   `json:"beneficiary_country"`
	AccountNumber                  string   `json:"account_number"`
	RoutingCodeType1               string   `json:"routing_code_type_1"`
	RoutingCodeValue1              string   `json:"routing_code_value_1"`
	RoutingCodeType2               string   `json:"routing_code_type_2"`
	RoutingCodeValue2              string   `json:"routing_code_value_2"`
	BicSwift                       string   `json:"bic_swift"`
	Iban                           string   `json:"iban"`
	DefaultBeneficiary             bool     `json:"default_beneficiary"`
	BankAddress                    string   `json:"bank_address"`
	BankName                       string   `json:"bank_name"`
	BankAccountType                string   `json:"bank_account_type"`
	BeneficiaryEntityType          string   `json:"beneficiary_entity_type"`
	BeneficiaryCompanyName         string   `json:"beneficiary_company_name"`
	BeneficiaryFirstName           string   `json:"beneficiary_first_name"`
	BeneficiaryLastName            string   `json:"beneficiary_last_name"`
	BeneficiaryCity                string   `json:"beneficiary_city"`
	BeneficiaryPostcode            string   `json:"beneficiary_postcode"`
	BeneficiaryStateOrProvince     string   `json:"beneficiary_state_or_province"`
	BeneficiaryDateOfBirth         string   `json:"beneficiary_date_of_birth"`
	BeneficiaryIdentificationType  string   `json:"beneficiary_identification_type"`
	BeneficiaryIdentificationValue string   `json:"beneficiary_identification_value"`
	PaymentTypes                   []string `json:"payment_types"`
	OnBehalfOf                     string   `json:"on_behalf_of"`
	BeneficiaryExternalReference   string   `json:"beneficiary_external_reference"`
	BusinessNature                 string   `json:"business_nature"`
	CompanyWebsite                 string   `json:"company_website"`
	Method                         string   `json:"method" binding:"required"` //add、del、update
	SignType                       string   `json:"sign_type"`                 //my、other
}

type CreateBeneficiariesReq struct {
	Name                           string   `json:"name" binding:"required"`
	BankAccountHolderName          string   `json:"bank_account_holder_name" binding:"required"`
	BankCountry                    string   `json:"bank_country" binding:"required"`
	Currency                       string   `json:"currency" binding:"required"`
	Email                          string   `json:"email"`
	BeneficiaryAddress             string   `json:"beneficiary_address"`
	BeneficiaryCountry             string   `json:"beneficiary_country"`
	AccountNumber                  string   `json:"account_number"`
	RoutingCodeType1               string   `json:"routing_code_type_1"`
	RoutingCodeValue1              string   `json:"routing_code_value_1"`
	RoutingCodeType2               string   `json:"routing_code_type_2"`
	RoutingCodeValue2              string   `json:"routing_code_value_2"`
	BicSwift                       string   `json:"bic_swift"`
	Iban                           string   `json:"iban"`
	DefaultBeneficiary             bool     `json:"default_beneficiary"`
	BankAddress                    string   `json:"bank_address"`
	BankName                       string   `json:"bank_name"`
	BankAccountType                string   `json:"bank_account_type"`
	BeneficiaryEntityType          string   `json:"beneficiary_entity_type"`
	BeneficiaryCompanyName         string   `json:"beneficiary_company_name"`
	BeneficiaryFirstName           string   `json:"beneficiary_first_name"`
	BeneficiaryLastName            string   `json:"beneficiary_last_name"`
	BeneficiaryCity                string   `json:"beneficiary_city"`
	BeneficiaryPostcode            string   `json:"beneficiary_postcode"`
	BeneficiaryStateOrProvince     string   `json:"beneficiary_state_or_province"`
	BeneficiaryDateOfBirth         string   `json:"beneficiary_date_of_birth"`
	BeneficiaryIdentificationType  string   `json:"beneficiary_identification_type"`
	BeneficiaryIdentificationValue string   `json:"beneficiary_identification_value"`
	PaymentTypes                   []string `json:"payment_types"`
	OnBehalfOf                     string   `json:"on_behalf_of"`
	BeneficiaryExternalReference   string   `json:"beneficiary_external_reference"`
	BusinessNature                 string   `json:"business_nature"`
	CompanyWebsite                 string   `json:"company_website"`
}

type OperatorBeneficiariesRes struct {
	Id                             string   `json:"id"`
	BankAccountHolderName          string   `json:"bank_account_holder_name"`
	Name                           string   `json:"name"`
	Email                          string   `json:"email"`
	PaymentTypes                   []string `json:"payment_types"`
	BeneficiaryAddress             []string `json:"beneficiary_address"`
	BeneficiaryCountry             string   `json:"beneficiary_country"`
	BeneficiaryEntityType          string   `json:"beneficiary_entity_type"`
	BeneficiaryCompanyName         string   `json:"beneficiary_company_name"`
	BeneficiaryFirstName           string   `json:"beneficiary_first_name"`
	BeneficiaryLastName            string   `json:"beneficiary_last_name"`
	BeneficiaryCity                string   `json:"beneficiary_city"`
	BeneficiaryPostcode            string   `json:"beneficiary_postcode"`
	BeneficiaryStateOrProvince     string   `json:"beneficiary_state_or_province"`
	BeneficiaryDateOfBirth         string   `json:"beneficiary_date_of_birth"`
	BeneficiaryIdentificationType  string   `json:"beneficiary_identification_type"`
	BeneficiaryIdentificationValue string   `json:"beneficiary_identification_value"`
	BankCountry                    string   `json:"bank_country"`
	BankName                       string   `json:"bank_name"`
	BankAccountType                string   `json:"bank_account_type"`
	Currency                       string   `json:"currency"`
	AccountNumber                  string   `json:"account_number"`
	RoutingCodeType1               string   `json:"routing_code_type_1"`
	RoutingCodeValue1              string   `json:"routing_code_value_1"`
	RoutingCodeType2               string   `json:"routing_code_type_2"`
	RoutingCodeValue2              string   `json:"routing_code_value_2"`
	BicSwift                       string   `json:"bic_swift"`
	Iban                           string   `json:"iban"`
	DefaultBeneficiary             string   `json:"default_beneficiary"`
	CreatorContactId               string   `json:"creator_contact_id"`
	BankAddress                    []string `json:"bank_address"`
	CreatedAt                      string   `json:"created_at"`
	UpdatedAt                      string   `json:"updated_at"`
	BeneficiaryExternalReference   string   `json:"beneficiary_external_reference"`
	BusinessNature                 string   `json:"business_nature"`
	CompanyWebsite                 string   `json:"company_website"`
}

type ValidateBeneficiariesReq struct {
	BankCountry                    string `json:"bank_country"`
	Currency                       string `json:"currency"`
	BeneficiaryAddress             string `json:"beneficiary_address"`
	BeneficiaryCountry             string `json:"beneficiary_country"`
	BicSwift                       string `json:"bic_swift"`
	Iban                           string `json:"iban"`
	BankAddress                    string `json:"bank_address"`
	BankName                       string `json:"bank_name"`
	BankAccountType                string `json:"bank_account_type"`
	BeneficiaryEntityType          string `json:"beneficiary_entity_type"`
	BeneficiaryCompanyName         string `json:"beneficiary_company_name"`
	BeneficiaryFirstName           string `json:"beneficiary_first_name"`
	BeneficiaryLastName            string `json:"beneficiary_last_name"`
	BeneficiaryCity                string `json:"beneficiary_city"`
	BeneficiaryPostcode            string `json:"beneficiary_postcode"`
	BeneficiaryStateOrProvince     string `json:"beneficiary_state_or_province"`
	BeneficiaryDateOfBirth         string `json:"beneficiary_date_of_birth"`
	BeneficiaryIdentificationType  string `json:"beneficiary_identification_type"`
	BeneficiaryIdentificationValue string `json:"beneficiary_identification_value"`
	RoutingCodeType1               string `json:"routing_code_type_1"`
	RoutingCodeValue1              string `json:"routing_code_value_1"`
	RoutingCodeType2               string `json:"routing_code_type_2"`
	RoutingCodeValue2              string `json:"routing_code_value_2"`
	AccountNumber                  string `json:"account_number"`
}

type ValidateBeneficiariesRes struct {
	Id                    string   `json:"id"`
	BankAccountHolderName string   `json:"bank_account_holder_name"`
	Name                  string   `json:"name"`
	Email                 string   `json:"email"`
	PaymentTypes          []string `json:"payment_types"`
	BankCountry           string   `json:"bank_country"`
	BankName              string   `json:"bank_name"`
	BankAccountType       string   `json:"bank_account_type"`
	Currency              string   `json:"currency"`
	AccountNumber         string   `json:"account_number"`
	//RoutingCodeType1               string   `json:"routing_code_type_1"`
	BeneficiaryAddress             []string `json:"beneficiary_address"`
	BeneficiaryCountry             string   `json:"beneficiary_country"`
	BeneficiaryEntityType          string   `json:"beneficiary_entity_type"`
	BeneficiaryCompanyName         string   `json:"beneficiary_company_name"`
	BeneficiaryFirstName           string   `json:"beneficiary_first_name"`
	BeneficiaryLastName            string   `json:"beneficiary_last_name"`
	BeneficiaryCity                string   `json:"beneficiary_city"`
	BeneficiaryPostcode            string   `json:"beneficiary_postcode"`
	BeneficiaryStateOrProvince     string   `json:"beneficiary_state_or_province"`
	BeneficiaryDateOfBirth         string   `json:"beneficiary_date_of_birth"`
	BeneficiaryIdentificationType  string   `json:"beneficiary_identification_type"`
	BeneficiaryIdentificationValue string   `json:"beneficiary_identification_value"`
	RoutingCodeValue1              string   `json:"routing_code_value_1"`
	RoutingCodeType2               string   `json:"routing_code_type_2"`
	RoutingCodeValue2              string   `json:"routing_code_value_2"`
	BicSwift                       string   `json:"bic_swift"`
	Iban                           string   `json:"iban"`
	BankAddress                    []string `json:"bank_address"`
	//CreatedAt   string   `json:"created_at"`
	//UpdatedAt   string   `json:"updated_at"`
	//BeneficiaryExternalReference   string   `json:"beneficiary_external_reference"`
	//BusinessNature                 string   `json:"business_nature"`
	//CompanyWebsite                 string   `json:"company_website"`
}

type GetBeneficiaryRequirementsReq struct {
	Currency           string `json:"currency" binding:"required"`
	BankAccountCountry string `json:"bank_account_country" binding:"required"`
	BeneficiaryCountry string `json:"beneficiary_country" binding:"required"`
}

type GetBeneficiaryRequirementsRes struct {
	Details []Details `json:"details"`
}

type Details struct {
	PaymentType                string `json:"payment_type"`
	AcctNumber                 string `json:"acct_number"`
	BicSwift                   string `json:"bic_swift"`
	BeneficiaryAddress         string `json:"beneficiary_address"`
	BeneficiaryCity            string `json:"beneficiary_city"`
	BeneficiaryCountry         string `json:"beneficiary_country"`
	BeneficiaryPostcode        string `json:"beneficiary_postcode"`
	BeneficiaryStateOrProvince string `json:"beneficiary_state_or_province"`
	BeneficiaryFirstName       string `json:"beneficiary_first_name,omitempty"`
	BeneficiaryLastName        string `json:"beneficiary_last_name,omitempty"`
	BeneficiaryEntityType      string `json:"beneficiary_entity_type"`
	BeneficiaryCompanyName     string `json:"beneficiary_company_name,omitempty"`
	SortCode                   string `json:"sort_code"`
	Iban                       string `json:"iban"`
	Aba                        string `json:"aba"`
	BsbCode                    string `json:"bsb_code"`
	InstitutionNo              string `json:"institution_no"`
	BankCode                   string `json:"bank_code"`
	BranchCode                 string `json:"branch_code"`
	Clabe                      string `json:"clabe"`
	Cnaps                      string `json:"cnaps"`
}

type GetBeneficiaryIdToInfoRes struct {
	NickName                       string `json:"nick_name"`
	Name                           string `json:"name"`
	BankAccountHolderName          string `json:"bank_account_holder_name"`
	BankCountry                    string `json:"bank_country"`
	Currency                       string `json:"currency"`
	Email                          string `json:"email"`
	BeneficiaryEntityType          string `json:"beneficiary_entity_type"`
	BeneficiaryAddress             string `json:"beneficiary_address"`
	BeneficiaryCity                string `json:"beneficiary_city"`
	BeneficiaryCountry             string `json:"beneficiary_country"`
	BeneficiaryFirstName           string `json:"beneficiary_first_name"`
	BeneficiaryLastName            string `json:"beneficiary_last_name"`
	Iban                           string `json:"iban"`
	BicSwift                       string `json:"bic_swift"`
	RoutingCodeType1               string `json:"routing_code_type_1"`
	RoutingCodeValue1              string `json:"routing_code_value_1"`
	RoutingCodeType2               string `json:"routing_code_type_2"`
	RoutingCodeValue2              string `json:"routing_code_value_2"`
	BankName                       string `json:"bank_name"`
	BankAddress                    string `json:"bank_address"`
	BankAccountType                string `json:"bank_account_type"`
	BeneficiaryCompanyName         string `json:"beneficiary_company_name"`
	BeneficiaryPostcode            string `json:"beneficiary_postcode"`
	BeneficiaryStateOrProvince     string `json:"beneficiary_state_or_province"`
	BeneficiaryDateOfBirth         string `json:"beneficiary_date_of_birth"`
	BeneficiaryIdentificationType  string `json:"beneficiary_identification_type"`
	BeneficiaryIdentificationValue string `json:"beneficiary_identification_value"`
	PaymentTypes                   string `json:"payment_types"`
	BeneficiaryExternalReference   string `json:"beneficiary_external_reference"`
	BusinessNature                 string `json:"business_nature"`
	CompanyWebsite                 string `json:"company_website"`
	SignType                       string `json:"sign_type"`
	Account                        string `json:"account"`
	CustomerId                     string `json:"customer_id"`
	AccountNumber                  string `json:"account_number"`
}

type BeneficiaryListReq struct {
	SignType string `json:"sign_type"`
	Name     string `json:"name"`
	Currency string `json:"currency"`
	PageNo   int    `json:"page_no"`
	PageSize int    `json:"page_size"`
}

type BeneficiaryListRes struct {
	BeneficiaryId string `json:"beneficiary_id"`
	Name          string `json:"name"`
	Currency      string `json:"currency"`
	Iban          string `json:"iban"`
	BicSwift      string `json:"bic_swift"`
	SignType      string `json:"sign_type"`
}

type EditBeneficiaryNickNameReq struct {
	BeneficiaryId string `json:"beneficiary_id"`
	NickName      string `json:"nick_name"`
}
